home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Toolbox / Visual Basic Toolbox (P.I.E.)(1996).ISO / toolkit / riruf1 / empform.frm < prev    next >
Text File  |  1995-05-19  |  16KB  |  649 lines

  1. VERSION 2.00
  2. Begin Form EmpForm 
  3.    BackColor       =   &H00C0C0C0&
  4.    BorderStyle     =   1  'Fixed Single
  5.    Caption         =   "Employee Data"
  6.    ClientHeight    =   4800
  7.    ClientLeft      =   1860
  8.    ClientTop       =   1515
  9.    ClientWidth     =   5445
  10.    Height          =   5205
  11.    KeyPreview      =   -1  'True
  12.    Left            =   1800
  13.    LinkTopic       =   "Form2"
  14.    MaxButton       =   0   'False
  15.    MinButton       =   0   'False
  16.    ScaleHeight     =   4800
  17.    ScaleWidth      =   5445
  18.    Top             =   1170
  19.    Width           =   5565
  20.    Begin SSFrame Frame3D1 
  21.       Font3D          =   0  'None
  22.       Height          =   2175
  23.       Left            =   120
  24.       TabIndex        =   13
  25.       Top             =   2520
  26.       Width           =   5175
  27.       Begin ComboBox cboState 
  28.          Height          =   300
  29.          Left            =   3000
  30.          Style           =   2  'Dropdown List
  31.          TabIndex        =   11
  32.          Top             =   1680
  33.          Width           =   855
  34.       End
  35.       Begin SSCheck chkActive 
  36.          Caption         =   "&Active"
  37.          Font3D          =   0  'None
  38.          Height          =   255
  39.          Left            =   4080
  40.          TabIndex        =   12
  41.          Top             =   1680
  42.          Width           =   855
  43.       End
  44.       Begin ComboBox cboWage 
  45.          Height          =   300
  46.          Left            =   1800
  47.          Sorted          =   -1  'True
  48.          TabIndex        =   10
  49.          Top             =   1680
  50.          Width           =   1095
  51.       End
  52.       Begin ComboBox cboStatus 
  53.          Height          =   300
  54.          Left            =   120
  55.          Style           =   2  'Dropdown List
  56.          TabIndex        =   8
  57.          Top             =   960
  58.          Width           =   1815
  59.       End
  60.       Begin MaskEdBox txtHireDate 
  61.          Height          =   285
  62.          Left            =   120
  63.          Mask            =   "##/##/####"
  64.          MaxLength       =   10
  65.          PromptChar      =   "_"
  66.          TabIndex        =   9
  67.          Top             =   1680
  68.          Width           =   1335
  69.       End
  70.       Begin TextBox txtFirstName 
  71.          Height          =   285
  72.          Left            =   120
  73.          MaxLength       =   20
  74.          TabIndex        =   6
  75.          Top             =   360
  76.          Width           =   2295
  77.       End
  78.       Begin TextBox txtLastName 
  79.          Height          =   285
  80.          Left            =   2640
  81.          MaxLength       =   20
  82.          TabIndex        =   7
  83.          Top             =   360
  84.          Width           =   2295
  85.       End
  86.       Begin Label Label7 
  87.          BackColor       =   &H00C0C0C0&
  88.          Caption         =   "State:"
  89.          Height          =   255
  90.          Left            =   3000
  91.          TabIndex        =   21
  92.          Top             =   1440
  93.          Width           =   615
  94.       End
  95.       Begin Label Label6 
  96.          BackColor       =   &H00C0C0C0&
  97.          Caption         =   "Wage:"
  98.          Height          =   255
  99.          Left            =   1800
  100.          TabIndex        =   20
  101.          Top             =   1440
  102.          Width           =   615
  103.       End
  104.       Begin Label lblEmpNo 
  105.          BackColor       =   &H00C0C0C0&
  106.          Height          =   255
  107.          Left            =   2640
  108.          TabIndex        =   19
  109.          Top             =   960
  110.          Width           =   735
  111.       End
  112.       Begin Label Label5 
  113.          BackColor       =   &H00C0C0C0&
  114.          Caption         =   "Status:"
  115.          Height          =   255
  116.          Left            =   120
  117.          TabIndex        =   18
  118.          Top             =   720
  119.          Width           =   615
  120.       End
  121.       Begin Label Label4 
  122.          BackColor       =   &H00C0C0C0&
  123.          Caption         =   "Hire Date:"
  124.          Height          =   255
  125.          Left            =   120
  126.          TabIndex        =   17
  127.          Top             =   1440
  128.          Width           =   975
  129.       End
  130.       Begin Label Label3 
  131.          BackColor       =   &H00C0C0C0&
  132.          Caption         =   "First Name:"
  133.          Height          =   255
  134.          Left            =   120
  135.          TabIndex        =   16
  136.          Top             =   120
  137.          Width           =   1095
  138.       End
  139.       Begin Label Label2 
  140.          BackColor       =   &H00C0C0C0&
  141.          Caption         =   "Last Name:"
  142.          Height          =   255
  143.          Left            =   2640
  144.          TabIndex        =   15
  145.          Top             =   120
  146.          Width           =   1095
  147.       End
  148.       Begin Label Label1 
  149.          BackColor       =   &H00C0C0C0&
  150.          Caption         =   "Employee Number:"
  151.          Height          =   255
  152.          Left            =   2640
  153.          TabIndex        =   14
  154.          Top             =   720
  155.          Width           =   1695
  156.       End
  157.    End
  158.    Begin CommandButton cmdDelete 
  159.       Caption         =   "&Delete"
  160.       Height          =   375
  161.       Left            =   3840
  162.       TabIndex        =   4
  163.       Top             =   1560
  164.       Width           =   1215
  165.    End
  166.    Begin CommandButton cmdUpdate 
  167.       Caption         =   "&Update"
  168.       Enabled         =   0   'False
  169.       Height          =   375
  170.       Left            =   3840
  171.       TabIndex        =   3
  172.       Top             =   1080
  173.       Width           =   1215
  174.    End
  175.    Begin CommandButton cmdNew 
  176.       Caption         =   "&New"
  177.       Height          =   375
  178.       Left            =   3840
  179.       TabIndex        =   2
  180.       Top             =   600
  181.       Width           =   1215
  182.    End
  183.    Begin CommandButton cmdEdit 
  184.       Caption         =   "&Edit"
  185.       Default         =   -1  'True
  186.       Height          =   375
  187.       Left            =   3840
  188.       TabIndex        =   1
  189.       Top             =   120
  190.       Width           =   1215
  191.    End
  192.    Begin ListBox lstEmps 
  193.       Height          =   2370
  194.       Left            =   120
  195.       TabIndex        =   0
  196.       Top             =   120
  197.       Width           =   3255
  198.    End
  199.    Begin CommandButton cmdClose 
  200.       Cancel          =   -1  'True
  201.       Caption         =   "&Close"
  202.       Height          =   375
  203.       Left            =   3840
  204.       TabIndex        =   5
  205.       Top             =   2040
  206.       Width           =   1215
  207.    End
  208. End
  209. Option Explicit
  210. Dim dsData As dynaset
  211. Dim bNew%, bChange%, bLocked%
  212. Dim lEmpNo&
  213. Dim bOpen%
  214.  
  215. Sub cboState_Change ()
  216.     bChange = True
  217. End Sub
  218.  
  219. Sub cboStatus_Change ()
  220.     bChange = True
  221. End Sub
  222.  
  223. Sub cboWage_Change ()
  224.     bChange = True
  225. End Sub
  226.  
  227. Sub cboWage_LostFocus ()
  228.     CheckAndSaveCbo cboWage, "Wages", "Wage", True
  229. End Sub
  230.  
  231. Function CheckChange () As Integer
  232.     Dim nResponse%
  233.     If bChange = True Then
  234.     Beep
  235.     nResponse = MsgBox("Discard current changes ?", MB_YESNO + MB_ICONQUESTION, TheAppTitle)
  236.     If nResponse = IDYES Then
  237.         CheckChange = True
  238.     Else
  239.         CheckChange = False
  240.     End If
  241.     Else
  242.     CheckChange = True
  243.     End If
  244.  
  245. End Function
  246.  
  247. Sub chkActive_Click (Value As Integer)
  248.     bChange = True
  249. End Sub
  250.  
  251. Sub cmdClose_Click ()
  252.     If CheckChange() Then
  253.     Unload EmpForm
  254.     End If
  255. End Sub
  256.  
  257. Sub cmdDelete_Click ()
  258.     On Error GoTo delErr
  259.     Dim ssData As snapshot
  260.     Dim qd As querydef
  261.  
  262.     lEmpNo = GetLBID(lstEmps, "Employee")
  263.     If lEmpNo = -1 Then
  264.     Exit Sub
  265.     End If
  266.  
  267.     If Not AskUser("Are you sure you want to delete the selected record?") Then
  268.     ArrowCursor
  269.     Exit Sub
  270.     End If
  271.  
  272.     If bLocked Then
  273.     dsData.Update
  274.     bLocked = False
  275.     End If
  276.  
  277.     Set qd = TheDatabase.OpenQueryDef("DeleteEmployee")
  278.     qd!id = lEmpNo        ' Set parameter.
  279.     qd.Execute
  280.  
  281.     txtLastName.Text = ""
  282.     txtFirstName.Text = ""
  283.     SelectText txtHireDate
  284.     txtHireDate.SelText = ""
  285.     chkActive.Value = False
  286.  
  287.     'reset combos
  288.     cboStatus.ListIndex = -1
  289.     cboWage.ListIndex = -1
  290.     cboWage.Text = ""
  291.     cboState.ListIndex = -1
  292.  
  293.     LoadListBox "GetAllEmps", -1, lstEmps, False, ","
  294.  
  295.     bNew = False
  296.     cmdNew.Caption = "&New"
  297.     cmdUpdate.Caption = "&Update"
  298.     cmdUpdate.Enabled = False
  299.     DoEvents
  300.     bChange = False
  301.     ArrowCursor
  302.     Exit Sub
  303.  
  304. delErr:
  305.     ArrowCursor
  306.     GetErrorMsg Err
  307.     Exit Sub
  308.  
  309. End Sub
  310.  
  311. Sub cmdEdit_Click ()
  312.     On Error GoTo editErr
  313.     Dim qd As querydef
  314.     Dim sBuff$, sTmp$, sLine$, sKey$, stat$, lTmp&
  315.  
  316.     'check for list box selection
  317.     lEmpNo = GetLBID(lstEmps, "Employee")
  318.     If lEmpNo = -1 Then
  319.     Exit Sub
  320.     End If
  321.  
  322.     HourglassCursor
  323.     bNew = False
  324.  
  325.     'check for currently loaded record
  326.     If CheckChange() Then
  327.  
  328.     Enable True
  329.  
  330.     Set qd = TheDatabase.OpenQueryDef("GetAllEmpData")
  331.     Set dsData = qd.CreateDynaset()
  332.     bOpen = True
  333.     qd.Close
  334.  
  335.     sBuff = "EmpNo = " & Str$(lEmpNo)
  336.     dsData.FindFirst sBuff
  337.     
  338.     If dsData.NoMatch Then
  339.         InformUser "ID no longer available: "
  340.     Else
  341.         dsData.Edit
  342.         bLocked = True
  343.  
  344.         lblEmpNo.Caption = lEmpNo
  345.         txtLastName.Text = ReturnString("LastName")
  346.         txtFirstName.Text = ReturnString("FirstName")
  347.         SelectText txtHireDate
  348.         txtHireDate.SelText = Format$(ReturnString("HireDate"), "mm/dd/yyyy")
  349.  
  350.         If Not IsNull(dsData("Status")) Then
  351.         ScanCombo dsData("Status"), cboStatus
  352.         Else
  353.         cboStatus.ListIndex = -1
  354.         End If
  355.  
  356.         cboWage.Text = Format$(ReturnString("Wage"), "##.00")
  357.         FindState ReturnString("State"), cboState
  358.  
  359.         If Not IsNull(dsData("Active")) Then
  360.         chkActive.Value = Val(dsData("Active"))
  361.         Else
  362.         chkActive.Value = False
  363.         End If
  364.  
  365.         SelectText txtLastName
  366.         SelectText txtFirstName
  367.         SelectText txtHireDate
  368.  
  369.         cmdUpdate.Caption = "&Update"
  370.         cmdUpdate.Enabled = True
  371.         DoEvents
  372.         bChange = False
  373.         bNew = False
  374.         txtFirstName.SetFocus
  375.     End If
  376.     End If
  377.     ArrowCursor
  378.     Exit Sub
  379.  
  380. editErr:
  381.     ArrowCursor
  382.     GetErrorMsg Err
  383.     Exit Sub
  384.  
  385. End Sub
  386.  
  387. Sub cmdNew_Click ()
  388.  
  389.     'blank fields
  390.     txtLastName.Text = ""
  391.     txtFirstName.Text = ""
  392.     lblEmpNo.Caption = ""
  393.  
  394.     'reset combos
  395.     cboStatus.ListIndex = -1
  396.     cboWage.ListIndex = -1
  397.     cboWage.Text = ""
  398.     cboState.ListIndex = -1
  399.  
  400.     If Not bNew Then
  401.     lEmpNo = GetID("Employee")
  402.     lblEmpNo.Caption = Str$(lEmpNo)
  403.     SelectText txtHireDate
  404.     txtHireDate.SelText = Format$(Now, "mm/dd/yyyy")
  405.     chkActive.Value = True
  406.     Enable True
  407.     bNew = True
  408.     cmdNew.Caption = "&Cancel"
  409.     cmdUpdate.Caption = "&Save"
  410.     cmdUpdate.Enabled = True
  411.     txtFirstName.SetFocus
  412.     Else
  413.     Enable False
  414.     bNew = False
  415.     SelectText txtHireDate
  416.     txtHireDate.SelText = ""
  417.     chkActive.Value = False
  418.     cmdNew.Caption = "&New"
  419.     cmdUpdate.Caption = "&Update"
  420.     cmdUpdate.Enabled = False
  421.     End If
  422.     DoEvents
  423.     bChange = False
  424.  
  425. End Sub
  426.  
  427. Sub cmdUpdate_Click ()
  428.     On Error GoTo UpdateErr
  429.     Dim qd As querydef
  430.     Dim sTmp$
  431.  
  432.     If Len(LTrim$(txtLastName.Text)) < 1 Then
  433.     StopUser "Last name cannot be blank!"
  434.     Exit Sub
  435.     End If
  436.  
  437.     If Len(LTrim$(txtFirstName.Text)) < 1 Then
  438.     StopUser "First name cannot be blank!"
  439.     Exit Sub
  440.     End If
  441.     
  442.     HourglassCursor
  443.     If bNew Then
  444.  
  445.     Set qd = TheDatabase.OpenQueryDef("GetAllEmpData")
  446.     Set dsData = qd.CreateDynaset()
  447.     bOpen = True
  448.     qd.Close
  449.  
  450.     If dsData.EOF And dsData.BOF Then
  451.         dsData.AddNew
  452.         dsData("EmpNo") = lEmpNo
  453.         dsData.Update
  454.         dsData.MoveFirst
  455.     Else
  456.         dsData.AddNew
  457.         dsData("EmpNo") = lEmpNo
  458.         dsData.Update
  459.         dsData.MoveLast
  460.     End If
  461.  
  462.     dsData.Edit
  463.     End If
  464.  
  465.     dsData("LastName") = txtLastName.Text
  466.     dsData("FirstName") = txtFirstName.Text
  467.     dsData("HireDate") = txtHireDate.Text
  468.  
  469.     If cboStatus.ListIndex = -1 Then
  470.     dsData("Status") = -1
  471.     Else
  472.     dsData("Status") = cboStatus.ItemData(cboStatus.ListIndex)
  473.     End If
  474.  
  475.     dsData("Active") = LTrim$(Str$(Abs(chkActive.Value)))
  476.     
  477.     dsData("Wage") = Val(cboWage.Text)
  478.     dsData("State") = LTrim$(cboState.Text)
  479.  
  480.     dsData.Update
  481.     bNew = False
  482.     cmdNew.Caption = "&New"
  483.     bLocked = False
  484.     Enable False
  485.     cmdUpdate.Enabled = False
  486.     cmdUpdate.Caption = "&Update"
  487.     DoEvents
  488.     bChange = False
  489.  
  490.     LoadListBox "GetAllEmps", lEmpNo, lstEmps, False, ","
  491.     ArrowCursor
  492.     Exit Sub
  493.  
  494. UpdateErr:
  495.     ArrowCursor
  496.     GetErrorMsg Err
  497.     Exit Sub
  498.  
  499. End Sub
  500.  
  501. Sub Enable (bVal%)
  502.     cboStatus.Enabled = bVal
  503.     cboWage.Enabled = bVal
  504.     cboState.Enabled = bVal
  505.     txtLastName.Enabled = bVal
  506.     txtFirstName.Enabled = bVal
  507.     txtHireDate.Enabled = bVal
  508.     chkActive.Enabled = bVal
  509. End Sub
  510.  
  511. Sub Form_KeyDown (KeyCode As Integer, Shift As Integer)
  512.     If KeyCode = KEY_F1 Then
  513.     CallHelp Employee_Data_Form
  514.     End If
  515. End Sub
  516.  
  517. Sub Form_Load ()
  518.     Enable False
  519.     bNew = False
  520.     bOpen = False
  521.     bChange = False
  522.     bLocked = False
  523.     LoadListBox "GetAllEmps", -1, lstEmps, False, ","
  524.     LoadCombo "GetActiveStatuses", -1, cboStatus, False, "", True
  525.     LoadCombo2 "GetWages", -1, cboWage, False, "", True, True
  526.     FillStates cboState
  527.  
  528. End Sub
  529.  
  530. Sub Form_Unload (Cancel As Integer)
  531.     If bOpen Then
  532.     dsData.Close
  533.     End If
  534. End Sub
  535.  
  536. Sub LoadCombo2 (sQDef As String, lDefault As Long, cboCtrl As ComboBox, bParam As Integer, sSeparator As String, bClear As Integer, bPad%)
  537.     On Error GoTo lc2Err
  538.     Dim ssData As snapshot
  539.     Dim qDef As querydef
  540.     Dim sLine$, i%, nIndex%, sSep$, sTmp$
  541.  
  542.     HourglassCursor
  543.     nIndex = -1
  544.  
  545.     Set qDef = TheDatabase.OpenQueryDef(sQDef)
  546.     If bParam Then
  547.     qDef!Param = lDefault
  548.     End If
  549.  
  550.     Set ssData = qDef.CreateSnapshot()
  551.     qDef.Close
  552.  
  553.     If Len(sSeparator) = 0 Then
  554.     sSep = " "
  555.     Else
  556.     sSep = sSeparator & " "
  557.     End If
  558.  
  559.     If bClear Then
  560.     cboCtrl.Clear
  561.     End If
  562.  
  563.     While Not ssData.EOF
  564.     If Not IsNull(ssData(0)) Then
  565.  
  566.     sLine = ""
  567.     For i = 0 To ssData.Fields.Count - 1
  568.         If Not IsNull(ssData(i)) Then
  569.         If bPad Then
  570.             sLine = sLine & Format$(AddQuoteV(ssData(i)), "##.00")
  571.         Else
  572.             sLine = sLine & AddQuoteV(ssData(i))
  573.         End If
  574.         If i < ssData.Fields.Count - 1 Then
  575.             sLine = sLine & sSep
  576.         End If
  577.         End If
  578.     Next
  579.     cboCtrl.AddItem sLine
  580.     If lDefault <> -1 Then
  581.         If lDefault = ssData(0) Then
  582.         nIndex = cboCtrl.NewIndex
  583.         End If
  584.     End If
  585.  
  586.     End If
  587.     ssData.MoveNext
  588.     Wend
  589.     ssData.Close
  590.  
  591.     If nIndex <> -1 Then
  592.     cboCtrl.ListIndex = nIndex
  593.     End If
  594.     ArrowCursor
  595.     Exit Sub
  596.  
  597. lc2Err:
  598.     ArrowCursor
  599.     GetErrorMsg Err
  600.     Exit Sub
  601.  
  602. End Sub
  603.  
  604. Sub lstEmps_DblClick ()
  605.     cmdEdit = True
  606. End Sub
  607.  
  608. Function ReturnString$ (sField$)
  609.     If Not IsNull(dsData(sField)) Then
  610.     ReturnString = dsData(sField)
  611.     Else
  612.     ReturnString = ""
  613.     End If
  614. End Function
  615.  
  616. Sub txtFirstName_Change ()
  617.     bChange = True
  618. End Sub
  619.  
  620. Sub txtFirstName_LostFocus ()
  621.     SelectText txtFirstName
  622. End Sub
  623.  
  624. Sub txtHireDate_Change ()
  625.     bChange = True
  626.     If InStr(txtHireDate.Text, "_") = 0 Then
  627.     If ValidateDate(txtHireDate) Then
  628.         cmdUpdate.Enabled = True
  629.     Else
  630.         cmdUpdate.Enabled = False
  631.     End If
  632.     Else
  633.     cmdUpdate.Enabled = False
  634.     End If
  635. End Sub
  636.  
  637. Sub txtHireDate_LostFocus ()
  638.     SelectText txtHireDate
  639. End Sub
  640.  
  641. Sub txtLastName_Change ()
  642.     bChange = True
  643. End Sub
  644.  
  645. Sub txtLastName_LostFocus ()
  646.     SelectText txtLastName
  647. End Sub
  648.  
  649.